package com.newjiabo.common.ski.media.module.entity.dto;

import com.newjiabo.common.utils.bean.BeanUtils;

import java.util.Map;

/**
 * {这个为视频服务的公共请求参数}
 *
 * @author CaoMengHui.
 * @version 1.0
 * @since 2023/9/19 14:30
 */
public class VsPublicRequestDto {

    /**
     * 必须与API名称保持一致
     */
    private String action;

    /**
     * 视频服务访问密钥ID。
     */
    private String akId;

    /**
     * 签名唯一随机数。用于防止网络重放攻击，建议您每一次请求都使用不同的随机数，随机数位数无限制。
     */
    private String signatureNonce;

    /**
     * 当前时间戳，有效期为15分钟，即生成时间戳后需要在15分钟内发起请求。按照ISO8601标准表示，并需要使用 UTC时间，格式为yyyy-MM-ddTHH:mm:ssZ。
     * 示例：2018-01-01T12:00:00Z表示北京时间2018年01月01日20点00分00秒。
     */
    private String timestamp;

    /**
     * 签名方式。目前为固定值 HMAC-SHA1。
     */
    private String signatureMethod = "HMAC-SHA1";

    /**
     * 签名算法版本。目前为固定值 1.0。
     */
    private String signatureVersion = "1.0";

    /**
     * 请求签名，用户请求的身份验证。详细签名机制，请参见签名机制。
     */
    private String signature;


    public static Map<String,Object> toRequestMap(){
        VsPublicRequestDto vsPublicRequestDto = new VsPublicRequestDto();
        return BeanUtils.objectToMap(vsPublicRequestDto);
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    public String getAkId() {
        return akId;
    }

    public void setAkId(String akId) {
        this.akId = akId;
    }

    public String getSignatureNonce() {
        return signatureNonce;
    }

    public void setSignatureNonce(String signatureNonce) {
        this.signatureNonce = signatureNonce;
    }

    public String getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(String timestamp) {
        this.timestamp = timestamp;
    }

    public String getSignatureMethod() {
        return signatureMethod;
    }

    public void setSignatureMethod(String signatureMethod) {
        this.signatureMethod = signatureMethod;
    }

    public String getSignatureVersion() {
        return signatureVersion;
    }

    public void setSignatureVersion(String signatureVersion) {
        this.signatureVersion = signatureVersion;
    }

    public String getSignature() {
        return signature;
    }

    public void setSignature(String signature) {
        this.signature = signature;
    }
}
